<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<!-- 

Set的基本操作：创建一个Set对象，添加、删除、检查元素，并计算Set的大小。


Map的基本操作：创建一个Map对象，添加、删除键值对，并遍历Map。同时，展示Map与其
他对象结构的区别。


-->
<script>
    // Set的基本操作
    var a = new Set();
    // 添加
    a.add(1);
    a.add('1');
    // 删除
    a.delete(1);
    // 检查
    console.log(a.has(1)); // false
    // 大小
    console.log(a.size); // 1





    // Map的基本操作
    var b = new Map();
    // 添加
    b.set('k1', 'v1');
    b.set('k2', 'v2');
    // 删除
    b.delete('k2');
    console.log(b.has('k2')); // 输出：false
    // 遍历 
    b.forEach((value, key) => {
        console.log(`Key: ${key}, Value: ${value}`);
    });
    // 区别：普通对象：键（属性名）只能是字符串或符号，Map：键可以是任意值，包括对象、函数、任意原始类型等
    // 普通对象：没有内置的迭代方法，如 forEach，Map：提供了丰富的内置方法，如 forEach、map、filter 等
    // 普通对象：没有内置的 size 属性，Map：提供了 size 属性，可以直接获取键值对的数量
</script>

</html>